package com.ufc.sst.DAO;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.Query;

import com.ufc.sst.model.Usuario;

public class UsuarioDAOHibernate implements UsuarioDAO {
	private Session sessao;

	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	@Override
	public void salvar(Usuario usuario) {
		this.sessao.save(usuario);
		
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Usuario> listar() {
		Criteria lista = sessao.createCriteria(Usuario.class);
		return lista.list();
	}

	@Override
	public void excluir(Usuario usuario) {
		this.sessao.delete(usuario);
		
	}

	@Override
	public Usuario pesquisar(String usuario) {
		Query consultaNome = this.sessao.createQuery("from Usuario u where u.nome like :nome");
		consultaNome.setString("nome", "%" + usuario + "%");
		return (Usuario) consultaNome.uniqueResult();
	}

	@Override
	public void alterar(Usuario usuario) {
		this.sessao.update(usuario);
		
	}
	
	
	
}
